8027ba00: 27 bd ff e0  ADDIU sp, sp, 0xffffffe0 (-32)
8027ba04: af bf 00 14  SW ra, sp, 0x14 (20)
8027ba08: af a4 00 20  SW a0, sp, 0x20 (32)

8027ba0c: 3c 0e 80 33  LUI t6, 0x8033 (32819)
8027ba10: 8d ce de f4  LW t6, t6, 0xffffdef4 (-8460)
8027ba14: 15 c0 00 1a  BNE t6, r0, 0x8027ba80 (pc + 0x68)
8027ba18: 00 00 00 00  NOP
8027ba1c: 8f af 00 20  LW t7, sp, 0x20 (32)
8027ba20: 8d f8 00 10  LW t8, t7, 0x10 (16)
8027ba24: 13 00 00 16  BEQ r0, t8, 0x8027ba80 (pc + 0x58)  if (*(0x8032def4) || !(arg1->off0x10)) goto 0x8027ba80;
8027ba28: 00 00 00 00  NOP

8027ba2c: 8f b9 00 20  LW t9, sp, 0x20 (32)
8027ba30: 3c 01 80 33  LUI at, 0x8033 (32819)
8027ba34: ac 39 de f4  SW t9, at, 0xffffdef4 (-8460)       *(0x8032def4) = arg1;

8027ba38: af a0 00 1c  SW r0, sp, 0x1c (28)                [sp + 0x1c] = 0;

*
8027ba3c: 8f a9 00 1c  LW t1, sp, 0x1c (28)
8027ba40: 8f a8 00 20  LW t0, sp, 0x20 (32)
8027ba44: 00 09 50 80  SLL t2, t1, 0x2 (2)
8027ba48: 01 0a 58 21  ADDU t3, t0, t2
8027ba4c: ad 60 00 14  SW r0, t3, 0x14 (20)                [sp + 0x20]->off0x14[[sp + 0x1c]] = 0;

8027ba50: 8f ac 00 1c  LW t4, sp, 0x1c (28)
8027ba54: 25 8d 00 01  ADDIU t5, t4, 0x1 (1)
8027ba58: 29 a1 00 08  SLTI at, t5, 0x8 (8)
8027ba5c: 14 20 ff f7  BNE at, r0, 0x8027ba3c (pc - 0x24)  if (++[sp + 0x1c] < 8) goto 8027ba3c;
8027ba60: af ad 00 1c  SW t5, sp, 0x1c (28)

8027ba64: 8f ae 00 20  LW t6, sp, 0x20 (32)
8027ba68: 0c 09 f7 aa  JAL 0x8027dea8 (-2144870744)        0x8027dea8(arg1->off0x10);
8027ba6c: 8d c4 00 10  LW a0, t6, 0x10 (16)

8027ba70: 0c 09 ed b0  JAL 0x8027b6c0 (-2144880960)        0x8027b6c0(arg1);
8027ba74: 8f a4 00 20  LW a0, sp, 0x20 (32)

8027ba78: 3c 01 80 33  LUI at, 0x8033 (32819)
8027ba7c: ac 20 de f4  SW r0, at, 0xffffdef4 (-8460)       *(0x8032def4) = 0;

*
8027ba80: 10 00 00 01  BEQ r0, r0, 0x8027ba88 (pc + 0x4)
8027ba84: 00 00 00 00  NOP
8027ba88: 8f bf 00 14  LW ra, sp, 0x14 (20)
8027ba8c: 27 bd 00 20  ADDIU sp, sp, 0x20 (32)
8027ba90: 03 e0 00 08  JR ra
8027ba94: 00 00 00 00  NOP


if (*(0x8032def4) || !(arg1->off0x10)) goto 0x8027ba80;
*(0x8032def4) = arg1;
[sp + 0x1c] = 0;
8027ba3c:
[sp + 0x20]->off0x14[[sp + 0x1c]] = 0;
if (++[sp + 0x1c] < 8) goto 8027ba3c;
0x8027dea8(arg1->off0x10);
0x8027b6c0(arg1);
*(0x8032def4) = 0;
8027ba80:

typedef struct tagLAYOUT_NODE_0x04 {
    struct tagLAYOUT_NODE node;
    struct dlist_node *headptrs[8];
    struct dlist_node *lastnodes[8];
} LAYOUT_NODE_0x04;

void 8027ba00(LAYOUT_NODE_0x04 *p)
{
    int i;  /* sp + 0x1c */
    
    if (!*(0x8032def4) && p->node.child) {
        *(0x8032def4) = p;
        for (i = 0; i < 8; i++) {
            p->headptrs[i] = NULL;
        }
        0x8027dea8(p->node.child);
        0x8027b6c0(p);
       *(0x8032def4) = NULL;
   }
}
